package vip.xiaonuo.supplier.modular.warehouse.storesstream.param;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 库存流水编辑参数
 *
 * @author Mr.wu
 * @date  2025/03/19 09:49
 **/
@Getter
@Setter
public class SupplierStoresStreamEditParam {

    /** 库存流水ID */
    @Schema(description = "库存流水ID", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "id不能为空")
    private String id;

    /** 商品ID */
    @Schema(description = "商品ID")
    private String streamProductionId;

    /** 商品编码 */
    @Schema(description = "商品编码")
    private String streamProductionCode;

    /** 商品条码 */
    @Schema(description = "商品条码")
    private String streamProductionBarcode;

    /** 商品名称 */
    @Schema(description = "商品名称")
    private String streamProductionName;

    /** 商品规格 */
    @Schema(description = "商品规格")
    private String streamProductionSpec;

    /** 商品单位 */
    @Schema(description = "商品单位")
    private String streamProductionUnit;

    /** 批次 */
    @Schema(description = "批次")
    private String streamProductionBatch;

    /** 生产日期 */
    @Schema(description = "生产日期")
    private Date streamDateManufacture;

    /** 门店ID */
    @Schema(description = "门店ID")
    private String streamStoreId;

    /** 仓库ID */
    @Schema(description = "仓库ID")
    private String streamStorageId;

    /** 库位 */
    @Schema(description = "库位")
    private String streamStoreLocation;

    /** 入库数量 */
    @Schema(description = "入库数量")
    private BigDecimal streamInNumber;

    /** 出库数量 */
    @Schema(description = "出库数量")
    private BigDecimal streamOutNumber;

    /** 业务类型 */
    @Schema(description = "业务类型")
    private String streamBusinessType;

    /** 业务单号 */
    @Schema(description = "业务单号")
    private String streamBusinessId;

    /** 实时库存 */
    @Schema(description = "实时库存")
    private BigDecimal streamProductionStock;

    /** 业务对象 */
    @Schema(description = "业务对象")
    private String streamObjectId;

    /** 备注 */
    @Schema(description = "备注")
    private String remark;

    /** 扩展信息 */
    @Schema(description = "扩展信息")
    private String extJson;

    /** COMPANY_ID */
    @Schema(description = "COMPANY_ID")
    private String companyId;

}
